home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1997 #3
/
Amiga Plus CD - 1997 - No. 03.iso
/
pd
/
programmierung
/
alienbreed3d2_src
/
oldkey
< prev
next >
Wrap
Text File
|
1997-01-31
|
1KB
|
58 lines
KInt_Init ;VBR Assumed $0
move.l $68.w,OLDKINT
Move.l #KInt_Main,$68.w Install Interrupt
And.b #$3f,$bfe201 Set Timers
Move.b #$7f,$bfed01
Move.b $bfed01,d0
Move.b #$88,$bfed01
St.b KInt_CCode
Move.b #$a0,$bfee01 Start Timey Thing
Rts And return
OLDKINT: dc.l 0
KInt_Main
Movem.l d0/d1/a0/a1/a6,-(a7) Stack everything
Move.w #8,$dff09a Temp Disable Int.
Move.w $dff01e,d0 Intreqr
And.w #8,d0 Mask Out All X^ K_Int
Beq KInt_End Not Keyboard Interrupt
Lea $bfed01,a6
Move.w #$8,$dff09c Clear Int.Request
Move.b -$100(a6),d0 Move Raw Keyboard value
Ror.b #1,d0 Roll to correct
Not.b d0
Move.b d0,KInt_CCode Save Corrected Keycode
.HandShake Move.b #8,(a6)
Move.b #7,-$900(a6)
Move.b #0,-$800(a6)
Move.b #0,-$100(a6)
Move.b #$d1,$100(a6)
Tst.b (a6)
.wait Btst #0,(a6)
Beq.s .wait
Move.b #$a0,$100(a6)
Move.b (a6),d0
Move.b #$88,(a6)
Lea KeyMap,a1
Moveq.w #0,d0
Move.b KInt_CCode(pc),d0
Bmi.s KInt_KeyUp neg if up
KInt_KeyDown
st (a1,d0.w)
move.b d0,lastpressed
Bra KInt_End
KInt_KeyUp
And.w #$7f,d0 Make code Positive
clr.b (a1,d0.w)
KInt_End Movem.l (a7)+,d0/d1/a0/a1/a6 Unstack Everything
Move.w #$8008,$dff09a Re-enable Int.
Rts